﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BOAcademias;
using TOAcademias;
using System.Globalization;

/*************************************
Autor: Brian Pari
Fecha de Creación: 06/02/2011
Descripción de la Funcionalidad: Formulario que permite a los intructores planificar los recursos
a necesitar para las diferentes clases.
**************************************/  

public partial class TunkiFiles_Planificacion_PlanificacionClases : System.Web.UI.Page
{
    BOClase boClase = new BOClase();

    protected void Page_Load(object sender, EventArgs e)
    {


    }

    protected void ddlInstructor_SelectedIndexChanged(object sender, EventArgs e)
    {
        dtlClases.Visible = false;
    }

    protected void gvSeccion_SelectedIndexChanged(object sender, EventArgs e)
    {
        dtlClases.Visible = true;
        Console.WriteLine("esta es una prueba");
        GridViewRow gvrFila = gvSeccion.SelectedRow;

        Session["codSeccion"] = gvrFila.Cells[0].Text;

        ddlInstructor.Enabled = false;
        gvSeccion.Enabled = false;
        dtlClases.Visible = true;
        btnGuardar.Visible = true;
        btnCancelar.Visible = true;
    }

    protected void dtlClases_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        Console.WriteLine("50");        

    }

    protected void dtlClases_SelectedIndexChanged(object sender, EventArgs e)
    {
         Console.WriteLine("50");
         TextBox txtClase = (TextBox)FindControlRecursive(dtlClases.SelectedItem, "txtRecurso");
         Console.WriteLine(txtClase.Text);
    }

    private Control FindControlRecursive(Control ctlControl, String txtId)
    {
        Control ctlReturnControl = ctlControl.FindControl(txtId);
        if (ctlReturnControl == null)
        {
            foreach (Control ctlChild in ctlControl.Controls)
            {
                ctlReturnControl = FindControlRecursive(ctlChild,txtId);
                if (ctlReturnControl != null && ctlReturnControl.ID == txtId)
                {
                    return ctlReturnControl;
                }
            }
        }
        return ctlReturnControl;
    }

    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        foreach(DataListItem dliClases in dtlClases.Items){

            TextBox txtRecurso = (TextBox)FindControlRecursive(dliClases, "txtRecurso");
            Label lblClase = (Label)FindControlRecursive(dliClases, "lblCodClase");

            TOClase toClase = new TOClase();

            toClase.Recurso = txtRecurso.Text;
            toClase.Cod_Clase = lblClase.Text;

            boClase.modificarClase(toClase);
            
        }

        dtlClases.DataBind();
    }
    protected void btnSemana_Click(object sender, EventArgs e)
    {
        DataListItem dliAux = (DataListItem)((Button)sender).Parent;
        replicarRecursos(dliAux, 1);
    }

    protected void btnMes_Click(object sender, EventArgs e)
    {
        DataListItem dliAux = (DataListItem)((Button)sender).Parent;
        replicarRecursos(dliAux, 2);    
        //dtlClases.DataBind();
    }

    protected void btnPeriodo_Click(object sender, EventArgs e)
    {
        DataListItem dliAux = (DataListItem)((Button)sender).Parent;
        replicarRecursos(dliAux, 3);
    }

    public void replicarRecursos(DataListItem dliAux, int intTipo)
    {
        TextBox txtRecursoaux = (TextBox)FindControlRecursive(dliAux, "txtRecurso");
        Label lblFechaaux = (Label)FindControlRecursive(dliAux, "lblFecha");

        DateTime fechaAux = DateTime.ParseExact(lblFechaaux.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
        DateTime fechaFinAux=DateTime.Now;
        switch (intTipo) { 
            case 1:
                fechaFinAux = fechaAux.AddDays(7);
                break;
            case 2:
                fechaFinAux = fechaAux.AddMonths(1);
                break;
            case 3:
                fechaFinAux = fechaAux.AddYears(1);
                break;
          }
        

        foreach (DataListItem dliClases in dtlClases.Items)
        {
            TextBox txtRecurso = (TextBox)FindControlRecursive(dliClases, "txtRecurso");
            Label lblClase = (Label)FindControlRecursive(dliClases, "lblCodClase");
            Label lblFecha = (Label)FindControlRecursive(dliClases, "lblFecha");
            DateTime fecha = DateTime.ParseExact(lblFecha.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

            if ((fecha.CompareTo(fechaAux) >= 0) && (fecha.CompareTo(fechaFinAux) <= 0))
            {
                txtRecurso.Text = txtRecursoaux.Text;
            }


        }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        ddlInstructor.Enabled = true;
        gvSeccion.Enabled = true;
        dtlClases.Visible = false;
        btnGuardar.Visible = false;
        btnCancelar.Visible = false;
    }
}
